import config from '../../utils/config';
import request from '../../utils/request';

Page({
    data:{
        navList:[],
        navId: 0,
        videoList:[],
        videoId: null,
        videoUpdateTime:[],//记录播放的时长
        isTriggered: false //标识下拉刷新状态
    },
    onLoad: function(){
        this.getVideoNavs();
    },
    // 获取导航栏
    async getVideoNavs(){
        const res = await request(config.videoNavs,{});
        this.setData({
            navList: res.data.slice(0,14),
            navId: res.data.slice(0,14)[0].id
        });
        this.getVideoList(this.data.navId);
    },
    // 获取视频
    async getVideoList(id){
        const res = await request(config.videoList,{ id });
        this.setData({
            videoList: res.datas,
            isTriggered: false //更新下拉刷新状态
        });
    },
    changeNav(e){
        // 通过id向event传参的时候如果传的是number会自动转换成string
        this.setData({
            navId: e.target.dataset.id
        });

        this.getVideoList(this.data.navId);
    },
    // 点击播放 && 继续播放
    handlePlay(e){
        // 这里声明vid是要区分继续播放时当前video实例不能被销毁，否则点击继续播放时会异常
        const vid = e.currentTarget.id;
        //this.vid != vid && this.videoCxt && this.videoCxt.stop();

        // 创建控制vide标签的实例对象
        //this.vid = vid;
        this.setData({
            videoId: vid
        });
        this.videoCxt = wx.createVideoContext(vid);
        // 判断当前的视频是否有播放记录，若有，跳转到记录的播放时间位置
        const { videoUpdateTime } = this.data;
        const videoItem = videoUpdateTime.find(v => v.vid == vid);
        if(videoItem){
            this.videoCxt.seek(videoItem.currentTime);
        }
        this.videoCxt.play();
    },
    // 记录当前视频的播放时间
    handleTimeUpdate(e){
        const videoTimeObj = {
            vid: e.currentTarget.id,
            currentTime: e.detail.currentTime
        };
       
        const { videoUpdateTime } = this.data;
        
        // 查找是否有当前这个视频播放时间对象，有就更新播放时间，没有则添加
        const videoItem = videoUpdateTime.find(v => v.vid == videoTimeObj.vid);
        if(videoItem){
            videoItem.currentTime = e.detail.currentTime;
        }else{
            videoUpdateTime.push(videoTimeObj);
        }

        this.setData({
            videoUpdateTime: videoUpdateTime
        });

    },
    // 视频播放结束调用
    handleEnded(e){
        const { videoUpdateTime } = this.data;
        const index = videoUpdateTime.findIndex(v => v.vid == e.currentTarget.id);
        index != -1 && videoUpdateTime.slice(1);
        this.setData({
            videoUpdateTime
        });
    },
    // 下拉刷新
    handleRefresherrefresh(){
        console.log('下拉刷新');
        this.setData({
            isTriggered: true
        });
        this.getVideoList(this.data.navId);
    },
    // 上拉触底事件
    handleScrolltolower(){
        console.log('上拉触底：一般是真分页，每次触底就pageNum+1,直到比total大为止');
        // 这里不做，网易云没有相关api
    },
    // 监听用户点击页面内转发按钮
    onShareAppMessage(e){
        // from取值：button/menu
        // 这里只使用点击右上角分享（from：menu）
        console.log('e:',e);
        console.log('from:',e.from);
        if(e.from === 'menu'){
            return {
                title: '网抑云音乐, 你值得拥有!',
                page: '/pages/video/video',
                imageUrl:'/static/images/logo.png'
            }
        }else{
            const { video } = e.target.dataset;
            return {
                title: video.data.title,
                page: '/pages/video/video',
                imageUrl:video.data.coverUrl
            }
        }
    },
    toSearch(){
        wx.navigateTo({
            url: '/pages/search/search'
        });
    }
})